package com.xff.controller;

import com.xff.dao.PersonDao;
import com.xff.proxy.Calculator;
import com.xff.proxy.MyCalculator;
import com.xff.service.PersonService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Controller;

@Controller
public class PersonController implements IpersonController {

    /*
    * @Autowired完成自动注入的功能
    * 默认是按照ByType来进行装配的，如果找到进行赋值，找不到则报错
    * 如果有多个类型一样的bean对象，此时会按照id（personService）进行查找（类名首字母小写）
    * @Qualifier自己规定通过名字进行查找
    *
    * 当@Autowired添加到方法上的时候，此方法会在创建对象的时候默认调用，同时方法的参数会进行自动装配
    *
    * 使用@Resource可以完成跟@Autowired相同的功能，但是注意他们的区别
    * */
    @Autowired
    /*@Qualifier("personService")*/
    PersonService personService;

    @Autowired
    MyCalculator myCal;

    public void save(int a,int b){
        int c=a/b;
        personService.save();

    }

    public void add(int a, int b) throws NoSuchMethodException {
        myCal.add(a, b);
    }

    /*@Autowired*/
    public void test(@Qualifier("personDao") PersonDao personDao1){
        personDao1.update();
    }
}
